SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO
CREATE PROCEDURE [dbo].[SP_TMDOCU_PROV_Q31]            
/*--------------------------------------------------------*/            
/*---Empresa               OFISIS S.A.                 --*/            
/*---PROVnte               CELIMA         --*/            
/*---Sistema               Tesoreria                   --*/            
/*---M®dulo                Empresa                     --*/            
/*---Programa              CUENTA CORRIENTE PROVEEDOR  --*/            
/*---Script                SP_TMDOCP_GENE_Q31.sql      --*/            
/*---Nombre SP             SP_TMDOCP_GENE_Q31          --*/            
/*---Desarrollado por      Reynaldo Menacho Luyo       --*/            
/*---Fecha Creaci®n        03/01/2001                  --*/            
/*---Base Datos           : Microsoft Sql Server       --*/            
/*---Versi¢n              : 2005                       --*/            
/*---Invoca a SP                                       --*/            
/*--------------------------------------------------------*/            
/*-------------------------------------------------------*/            
/*---Modificado 1 por     :Reynaldo Menacho L.     --*/            
/*---Fecha Modificaci½n   :08/03/2002     --*/             
/*---Detalle Modificaci½n : MANEJO DE VARIAS MONEDAS  --*/            
/*-------------------------------------------------------*/            
            
/*-------------------------------------------------------*/            
/*---Drop Proc SP_TMDOCP_GENE_Q31                      --*/            
/*---Grant Execute on SP_TMDOCU_PROV_Q31 to public         --*/             
/*--- Execute SP_TMDOCU_PROV_Q31 "Where TMDOCP_GENE.CO_EMPR in ( '01') 
And TMDOCP_GENE.CO_PROV >= '20100049181' And TMDOCP_GENE.CO_PROV<= '20100049181'", Null,          
'C', 'E', '2009-01-01', '2010-07-14', '2010-07-14', '1', 'P', 'D', 'SOL', 'N', 0  --*/            
/*-------------------------------------------------------*/            
          
           
@ISCA_WHER_0001 VARCHAR(255),            
@ISCA_WHER_0002 VARCHAR(255),            
@ISTI_SALD TD_VC_001,            
@ISFL_FECH TD_VC_001,            
@IDFE_INIC  TD_DT_001,            
@IDFE_FINA  TD_DT_001,            
@IDFE_CANC TD_DT_001,            
@ISDE_ORDE TD_VC_001,            
@ISTI_AUXI_PROV TD_VC_001,            
@ISTI_REPO  TD_VC_003,            
@ISCO_MONE_PRES TD_VC_003,            
@ISST_USUA TD_VC_001,            
@INFA_USUA TD_NU_009_004            
AS            
            
 CREATE TABLE #TWDOCU_PROV_Q31_1             
 ( CO_EMPR      varchar(3) NULL,            
   CO_TIPO_DOCU varchar(3)  NULL ,            
   NU_DOCU_PROV varchar(20)  NULL,            
   CO_PROV varchar(20) NULL ,            
   FE_REPO datetime NULL,            
   FE_EMIS datetime NULL,            
   FE_VENC datetime NULL,            
   CO_TIPO_OPER varchar(3) NULL,            
   CO_MONE varchar(3) NULL,            
   FA_TIPO_CAMB numeric(9,4) NULL,            
   IM_CXPA numeric(16,4) DEFAULT 0,            
   IM_PAGO numeric(16,4) DEFAULT 0,            
   IM_CXPA_CONV numeric(16,4) DEFAULT 0,            
   IM_PAGO_CONV numeric(16,4) DEFAULT 0,            
   IM_CONV numeric(16,4) DEFAULT 0,            
   TI_DETA varchar(1) NULL,            
   ST_FLAG varchar(1) NULL)            
            
            
            
CREATE TABLE #TWDOCU_PROV_Q31_2             
 ( CO_EMPR      varchar(3) NULL,            
   CO_PROV varchar(20) NULL,            
   CO_MONE      varchar(3) NULL,             
   IM_SAIN numeric(16,4) NULL,            
   IM_SAIN_CONV numeric(16,4) NULL)            
            
 CREATE TABLE #TWDOCU_PROV_Q31_3             
 ( CO_EMPR      varchar(3) NULL,            
   CO_TIPO_DOCU varchar(3)  NULL ,            
   NU_DOCU_PROV varchar(20)  NULL,            
   CO_PROV varchar(20) NULL ,            
   FE_EMIS datetime NULL,            
   FE_VENC datetime NULL,            
   CO_TIPO_OPER varchar(3) NULL,            
   CO_MONE varchar(03) NULL,            
   FA_TIPO_CAMB numeric(9,4) NULL,            
   IM_SAIN numeric(16,4) DEFAULT 0,            
   IM_SAIN_CONV numeric(16,4) DEFAULT 0,            
   IM_CXPA numeric(16,4) DEFAULT 0,            
   IM_PAGO numeric(16,4) DEFAULT 0,            
   IM_CXPA_CONV numeric(16,4) DEFAULT 0,            
   IM_PAGO_CONV numeric(16,4) DEFAULT 0,            
   IM_CONV numeric(16,4) DEFAULT 0,            
   IM_CONV_TOTA numeric(16,4) DEFAULT 0,            
   TI_DETA_PROV varchar(1)  NULL,            
   TI_DETA_EMPR varchar(1)  NULL,            
   TI_DETA_GENE varchar(1)  NULL)            
            
DECLARE             
            
@VSTI_CAMB TD_VC_001,            
@VSTI_ORIG TD_VC_001,            
@VSDE_ORDE TD_VC_050,            
@VSFE_INIC TD_VC_010,            
@VSFE_FINA TD_VC_010,            
@VNIM_CXPA_CONV TD_NU_016_004,            
@VNIM_PAGO_CONV TD_NU_016_004,            
@VNFE_0001      TD_IN_001,             
            
@CSCO_EMPR   TD_VC_002,            
@CSCO_PROV   TD_VC_020,            
@CSCO_TIPO_DOCU TD_VC_003,            
@CSNU_DOCU_PROV TD_VC_020,            
@CSCO_MONE      TD_VC_003,            
@CNIM_CXPA TD_NU_016_004,            
@CNIM_PAGO TD_NU_016_004,            
@CDFE_EMIS  TD_DT_001,            
@CNFA_TIPO_CAMB TD_NU_009_004,             
@CSTI_DETA TD_VC_002,            
            
@OSTI_DOCU_LETR TD_VC_003,            
@OSTI_DOCU_NCRE TD_VC_003,            
@OSTI_DOCU_OCMP TD_VC_003,            
@OSTI_DOCU_CRET TD_VC_003            
            
            
EXEC SP_TTDOCU_CNTB_Q01 4, @OSTI_DOCU_NCRE OUTPUT            
EXEC SP_TTDOCU_CNTB_Q01 6, @OSTI_DOCU_LETR OUTPUT            
EXEC SP_TTDOCU_CNTB_Q01 22, @OSTI_DOCU_CRET OUTPUT            
            
            
-- TIPOS DE DETALLE(TI_DETA = '1' AL '7')            
--1.- DOCS EMITIDOS EN ESOS MESES                 
--2.- PAGOS BANCOS / CAJA            
--3.- APLICACIONES DE NCR A DOCUMENTOS            
--4.- APLICACIONES DE OCM A DOCUMENTOS            
--5.- CANJES            
--6.- RENOVACIONES            
            
--1.- DOCS EMITIDOS EN ESOS MESES            
IF @ISFL_FECH = 'E'            
            
  EXECUTE('            
  INSERT INTO #TWDOCU_PROV_Q31_1             
  (CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS, FE_REPO, FE_VENC,            
  CO_MONE, CO_TIPO_OPER, FA_TIPO_CAMB, IM_CXPA,  TI_DETA)            
            
  Select TMDOCP_GENE.CO_EMPR, TMDOCP_GENE.CO_TIPO_DOCU , TMDOCP_GENE.NU_DOCU_PROV , TMDOCP_GENE.CO_PROV, TMDOCP_GENE.FE_EMIS,          
            
  TMDOCP_GENE.FE_EMIS, TMDOCP_GENE.FE_VENC, TMDOCP_GENE.CO_MONE, TMDOCP_GENE.CO_TIPO_OPER, TMDOCP_GENE.FA_TIPO_CAMB,            
  ( PatIndex(TTDOCU_CNTB.ST_SIGN,"S") - PatIndex(TTDOCU_CNTB.ST_SIGN,"N") ) * TMDOCP_GENE.IM_TOTA,  "1"            
  From  TMDOCP_GENE, TTDOCU_CNTB ' + @ISCA_WHER_0001 + @ISCA_WHER_0002 + '            
  And TMDOCP_GENE.FE_EMIS <= "' +  @IDFE_FINA + '"            
  And TMDOCP_GENE.CO_ESTA_DOCU != "ANU"            
  And TMDOCP_GENE.CO_TIPO_DOCU != "OCM"             
  And TMDOCP_GENE.CO_TIPO_DOCU != "OSR"            
  And TMDOCP_GENE.CO_TIPO_DOCU != "ANT"             
  And Rtrim(IsNull(TMDOCP_GENE.NU_REND_GAST, "")) = ""            
  AND TMDOCP_GENE.CO_TIPO_DOCU = TTDOCU_CNTB.TI_DOCU            
  And TTDOCU_CNTB.ST_GENE_CXPA = "S" ')            
IF @ISFL_FECH = 'V'            
EXECUTE('            
  INSERT INTO #TWDOCU_PROV_Q31_1             
  (CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS, FE_REPO, FE_VENC,            
  CO_MONE, CO_TIPO_OPER, FA_TIPO_CAMB, IM_CXPA,  TI_DETA)            
            
  Select TMDOCP_GENE.CO_EMPR, TMDOCP_GENE.CO_TIPO_DOCU , TMDOCP_GENE.NU_DOCU_PROV , TMDOCP_GENE.CO_PROV, TMDOCP_GENE.FE_EMIS,          
            
  TMDOCP_GENE.FE_EMIS, TMDOCP_GENE.FE_VENC, TMDOCP_GENE.CO_MONE, TMDOCP_GENE.CO_TIPO_OPER, TMDOCP_GENE.FA_TIPO_CAMB,            
  ( PatIndex(TTDOCU_CNTB.ST_SIGN,"S") - PatIndex(TTDOCU_CNTB.ST_SIGN,"N") ) * TMDOCP_GENE.IM_TOTA,  "1"            
  From  TMDOCP_GENE, TTDOCU_CNTB ' + @ISCA_WHER_0001 + @ISCA_WHER_0002 + '            
  And TMDOCP_GENE.FE_VENC <= "' +  @IDFE_FINA + '"            
  And TMDOCP_GENE.CO_ESTA_DOCU != "ANU"            
  And TMDOCP_GENE.CO_TIPO_DOCU != "OCM"             
  And TMDOCP_GENE.CO_TIPO_DOCU != "OSR"            
  And TMDOCP_GENE.CO_TIPO_DOCU != "ANT"             
  And Rtrim(IsNull(TMDOCP_GENE.NU_REND_GAST, "")) = ""            
  AND TMDOCP_GENE.CO_TIPO_DOCU = TTDOCU_CNTB.TI_DOCU            
  And TTDOCU_CNTB.ST_GENE_CXPA = "S" ')            
           
            
IF @ISFL_FECH = 'R'            
 EXECUTE('            
  INSERT INTO #TWDOCU_PROV_Q31_1             
  (CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS, FE_REPO, FE_VENC,            
  CO_MONE, CO_TIPO_OPER, FA_TIPO_CAMB, IM_CXPA,  TI_DETA)            
            
  Select TMDOCP_GENE.CO_EMPR, TMDOCP_GENE.CO_TIPO_DOCU , TMDOCP_GENE.NU_DOCU_PROV , TMDOCP_GENE.CO_PROV, TMDOCP_GENE.FE_EMIS,       
            
  TMDOCP_GENE.FE_EMIS, TMDOCP_GENE.FE_VENC, TMDOCP_GENE.CO_MONE, TMDOCP_GENE.CO_TIPO_OPER, TMDOCP_GENE.FA_TIPO_CAMB,            
  ( PatIndex(TTDOCU_CNTB.ST_SIGN,"S") - PatIndex(TTDOCU_CNTB.ST_SIGN,"N") ) * TMDOCP_GENE.IM_TOTA,            
  "1"            
  From  TMDOCP_GENE, TTDOCU_CNTB ' + @ISCA_WHER_0001 + @ISCA_WHER_0002 + '            
  And TMDOCP_GENE.FE_REGI_COMP <= "' +  @IDFE_FINA + '"            
  And TMDOCP_GENE.CO_ESTA_DOCU != "ANU"            
  And TMDOCP_GENE.CO_TIPO_DOCU != "OCM"             
  And TMDOCP_GENE.CO_TIPO_DOCU != "OSR"            
  And TMDOCP_GENE.CO_TIPO_DOCU != "ANT"             
  And Rtrim(IsNull(TMDOCP_GENE.NU_REND_GAST, "")) = ""           
  AND TMDOCP_GENE.CO_TIPO_DOCU = TTDOCU_CNTB.TI_DOCU            
  And TTDOCU_CNTB.ST_GENE_CXPA = "S" ')            
            
--SELECT * INTO /*SELECT * FROM*/ TTPRUEBA FROM TMDOCU_PROV            
--2.- PAGOS BANCOS / CAJA            
EXECUTE('            
INSERT INTO #TWDOCU_PROV_Q31_1             
(CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV,FE_EMIS,FE_REPO,          
CO_MONE, FA_TIPO_CAMB, IM_PAGO,  TI_DETA)            
Select TDMOVI_BANC.CO_EMPR, TDMOVI_BANC.TI_DOCU_ENTI, TDMOVI_BANC.NU_DOCU_ENTI, TDMOVI_BANC.CO_ENTI, TMDOCP_GENE.FE_EMIS,             
TCMOVI_BANC.FE_OPER, TMDOCP_GENE.CO_MONE, TCMOVI_BANC.FA_TIPO_CAMB,  /*( ( PatIndex(TTDOCU_CNTB.ST_SIGN,"S") -          
PatIndex(TTDOCU_CNTB.ST_SIGN,"N") )*PatIndex(TDMOVI_BANC.TI_MOVI_BANC,"E")+            
  ( PatIndex(TTDOCU_CNTB.ST_SIGN,"S") - PatIndex(TTDOCU_CNTB.ST_SIGN,"N") )*PatIndex(TDMOVI_BANC.TI_MOVI_BANC,"I")) */            
( PatIndex(TTDOCU_CNTB.ST_SIGN,"S") - PatIndex(TTDOCU_CNTB.ST_SIGN,"N")) *             
( PatIndex(TDMOVI_BANC.ST_CIER_DOCU, "N") * TDMOVI_BANC.IM_CONV_DOCU +            
  PatIndex(TDMOVI_BANC.ST_CIER_DOCU, "S") * TDMOVI_BANC.IM_SALD_DOCU ),            
"2"            
From  TDMOVI_BANC, TCMOVI_BANC, TMCNTA_BANC, TMDOCP_GENE, TTDOCU_CNTB ' +            
@ISCA_WHER_0001 + @ISCA_WHER_0002 + '             
And  TDMOVI_BANC.TI_ENTI = "' + @ISTI_AUXI_PROV + '"            
And  TCMOVI_BANC.FE_OPER  <= "' + @IDFE_CANC + '"            
And  TCMOVI_BANC.TI_SITU = "ACT"             
And    TDMOVI_BANC.CO_EMPR = TCMOVI_BANC.CO_EMPR              
And    TDMOVI_BANC.CO_UNID_CONC = TCMOVI_BANC.CO_UNID_CONC        
And    TDMOVI_BANC.CO_BANC = TCMOVI_BANC.CO_BANC              
And    TDMOVI_BANC.NU_CNTA_BANC  = TCMOVI_BANC.NU_CNTA_BANC              
And    TDMOVI_BANC.AA_BNCO = TCMOVI_BANC.AA_BNCO            
And    TDMOVI_BANC.MM_BNCO = TCMOVI_BANC.MM_BNCO             
And    TDMOVI_BANC.TI_MOVI_BANC  = TCMOVI_BANC.TI_MOVI_BANC             
And    TDMOVI_BANC.NU_COMP_BANC = TCMOVI_BANC.NU_COMP_BANC            
And    TDMOVI_BANC.CO_EMPR = TMCNTA_BANC.CO_EMPR              
And    TDMOVI_BANC.CO_BANC = TMCNTA_BANC.CO_BANC              
And    TDMOVI_BANC.NU_CNTA_BANC  = TMCNTA_BANC.NU_CNTA_BANC            
AND  TDMOVI_BANC.CO_EMPR = TMDOCP_GENE.CO_EMPR            
AND  TDMOVI_BANC.CO_ENTI = TMDOCP_GENE.CO_PROV            
AND   TDMOVI_BANC.TI_DOCU_ENTI = TMDOCP_GENE.CO_TIPO_DOCU            
AND   TDMOVI_BANC.NU_DOCU_ENTI = TMDOCP_GENE.NU_DOCU_PROV            
AND   TMDOCP_GENE.CO_TIPO_DOCU = TTDOCU_CNTB.TI_DOCU ' )            
            
EXECUTE('     
INSERT INTO #TWDOCU_PROV_Q31_1             
(CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS, FE_REPO,             
CO_MONE, FA_TIPO_CAMB, IM_PAGO,  TI_DETA)            
Select TDMOVI_CAJA.CO_EMPR, TDMOVI_CAJA.TI_DOCU_ENTI, TDMOVI_CAJA.NU_DOCU_ENTI, TDMOVI_CAJA.CO_ENTI, TCMOVI_CAJA.FE_OPER,             
TCMOVI_CAJA.FE_OPER, TMDOCP_GENE.CO_MONE, TCMOVI_CAJA.FA_TIPO_CAMB,            
( PatIndex(TTDOCU_CNTB.ST_SIGN,"S") - PatIndex(TTDOCU_CNTB.ST_SIGN,"N")) *             
( PatIndex(TDMOVI_CAJA.ST_CIER_DOCU, "N") * TDMOVI_CAJA.IM_CONV_DOCU +            
  PatIndex(TDMOVI_CAJA.ST_CIER_DOCU, "S") * TDMOVI_CAJA.IM_SALD_DOCU ),            
"2"            
From   TDMOVI_CAJA, TCMOVI_CAJA TCMOVI_CAJA, TMCAJA , TMDOCP_GENE, TTDOCU_CNTB ' +            
@ISCA_WHER_0001 + @ISCA_WHER_0002 + '             
And    TDMOVI_CAJA.TI_ENTI = "' + @ISTI_AUXI_PROV + '"            
And    TCMOVI_CAJA.FE_OPER  <= "' + @IDFE_CANC + '"            
And    TCMOVI_CAJA.TI_SITU = "ACT"             
And    TDMOVI_CAJA.CO_EMPR = TCMOVI_CAJA.CO_EMPR              
And    TDMOVI_CAJA.CO_CAJA = TCMOVI_CAJA.CO_CAJA            
And    TDMOVI_CAJA.AA_CAJA = TCMOVI_CAJA.AA_CAJA            
And    TDMOVI_CAJA.MM_CAJA = TCMOVI_CAJA.MM_CAJA             
And    TDMOVI_CAJA.TI_MOVI = TCMOVI_CAJA.TI_MOVI            
And    TDMOVI_CAJA.NU_COMP_CAJA = TCMOVI_CAJA.NU_COMP_CAJA            
And    TDMOVI_CAJA.CO_EMPR = TMCAJA.CO_EMPR              
And    TDMOVI_CAJA.CO_CAJA = TMCAJA.CO_CAJA            
And  TDMOVI_CAJA.CO_EMPR = TMDOCP_GENE.CO_EMPR            
AND  TDMOVI_CAJA.CO_ENTI = TMDOCP_GENE.CO_PROV            
AND  TDMOVI_CAJA.TI_DOCU_ENTI = TMDOCP_GENE.CO_TIPO_DOCU            
And  TDMOVI_CAJA.NU_DOCU_ENTI = TMDOCP_GENE.NU_DOCU_PROV            
AND   TMDOCP_GENE.CO_TIPO_DOCU = TTDOCU_CNTB.TI_DOCU ' )            
            
            
            
/* PAGOS DE RENDICIONES DE GASTO */            
/*            
EXECUTE('            
INSERT INTO #TWDOCU_PROV_Q31_1             
(CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_REPO,             
CO_MONE, FA_TIPO_CAMB, IM_PAGO,  TI_DETA)            
            
Select TDREND_GAST.CO_EMPR, TDREND_GAST.CO_TIPO_DOCU, TDREND_GAST.NU_DOCU_PROV, TDREND_GAST.CO_ENTI,          
TCREND_GAST.FE_REND_GAST,            
TMDOCP_GENE.CO_MONE, TDREND_GAST.FA_CAMB_DOCU, TDREND_GAST.IM_DOCU,            
"2"            
From  TDREND_GAST, TCREND_GAST, TMDOCP_GENE, TTDOCU_CNTB ' +             
@ISCA_WHER_0001 + @ISCA_WHER_0002 + '            
And TDREND_GAST.TI_ENTI = "' + @ISTI_AUXI_PROV + '"            
And TCREND_GAST.FE_REND_GAST  <= "' + @IDFE_CANC + '"            
And TCREND_GAST.TI_SITU = "ACT"             
And TDREND_GAST.CO_EMPR = TCREND_GAST.CO_EMPR              
And TDREND_GAST.NU_REND_GAST = TCREND_GAST.NU_REND_GAST            
And TDREND_GAST.CO_EMPR = TMDOCP_GENE.CO_EMPR            
And TDREND_GAST.CO_ENTI = TMDOCP_GENE.CO_PROV            
And TDREND_GAST.CO_TIPO_DOCU = TMDOCP_GENE.CO_TIPO_DOCU            
And TDREND_GAST.NU_DOCU_PROV = TMDOCP_GENE.NU_DOCU_PROV            
And TMDOCP_GENE.CO_TIPO_DOCU = TTDOCU_CNTB.TI_DOCU ' ) */            
            
            
--3.- APLICACIONES NCR A DOCUMENTOS            
            
-- DOCUMENTOS            
            
EXECUTE('            
INSERT INTO #TWDOCU_PROV_Q31_1             
(CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_REPO,             
CO_MONE, FA_TIPO_CAMB, IM_PAGO,  TI_DETA)            
SELECT TCAMAR_NCPR.CO_EMPR, TMDOCP_GENE.CO_TIPO_DOCU, TMDOCP_GENE.NU_DOCU_PROV, TDAMAR_NCPR.CO_ENTI, TCAMAR_NCPR.FE_AMAR,            
TMDOCP_GENE.CO_MONE, TCAMAR_NCPR.FA_TIPO_CAMB,            
(PatIndex(TTDOCU_CNTB.ST_SIGN,"S") - PatIndex(TTDOCU_CNTB.ST_SIGN,"N") ) *            
(PATINDEX(TDAMAR_NCPR.ST_CIER_DOCU, "N")* ISNULL(TDAMAR_NCPR.IM_PAGO_CDES,0) +             
PATINDEX(TDAMAR_NCPR.ST_CIER_DOCU, "S")* ISNULL(TDAMAR_NCPR.IM_SALD_CDES,0)),            
"3"            
From   TCAMAR_NCPR , TDAMAR_NCPR, TMDOCP_GENE, TTDOCU_CNTB ' +            
 @ISCA_WHER_0001 + @ISCA_WHER_0002 + '             
And TCAMAR_NCPR.FE_AMAR  <= "' + @IDFE_CANC + '"            
AND TCAMAR_NCPR.TI_SITU = "ACT"             
AND TCAMAR_NCPR.CO_EMPR = TDAMAR_NCPR.CO_EMPR            
AND TCAMAR_NCPR.CO_UNID_CONC = TDAMAR_NCPR.CO_UNID_CONC            
AND TCAMAR_NCPR.NU_AMAR = TDAMAR_NCPR.NU_AMAR            
AND TCAMAR_NCPR.FE_AMAR = TDAMAR_NCPR.FE_AMAR            
AND TDAMAR_NCPR.CO_EMPR = TMDOCP_GENE.CO_EMPR            
AND TDAMAR_NCPR.CO_ENTI = TMDOCP_GENE.CO_PROV            
AND TDAMAR_NCPR.CO_TIDO_DEST = TMDOCP_GENE.CO_TIPO_DOCU            
AND TDAMAR_NCPR.NU_DOCU_DEST = TMDOCP_GENE.NU_DOCU_PROV            
AND (TMDOCP_GENE.NU_REND_GAST IS NULL OR TMDOCP_GENE.NU_REND_GAST = "")            
AND TMDOCP_GENE.CO_ESTA_DOCU != "ANU"             
AND TMDOCP_GENE.CO_TIPO_DOCU = TTDOCU_CNTB.TI_DOCU            
AND TTDOCU_CNTB.ST_DOCU_0004 = "N" ')            
            
            
-- NOTAS DE CREDITO APLICADAS             
EXECUTE('            
INSERT INTO #TWDOCU_PROV_Q31_1             
(CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_REPO,             
CO_MONE, FA_TIPO_CAMB, IM_PAGO,  TI_DETA)            
SELECT TCAMAR_NCPR.CO_EMPR, TMDOCP_GENE.CO_TIPO_DOCU, TMDOCP_GENE.NU_DOCU_PROV, TCAMAR_NCPR.CO_PROV, TCAMAR_NCPR.FE_AMAR,            
TMDOCP_GENE.CO_MONE, TCAMAR_NCPR.FA_TIPO_CAMB,            
(PatIndex(TTDOCU_CNTB.ST_SIGN,"S") - PatIndex(TTDOCU_CNTB.ST_SIGN,"N") ) *             
(PATINDEX(TDAMAR_NCPR.ST_CIER_DOCU, "N")* ISNULL(TDAMAR_NCPR.IM_PAGO_CORI,0) +             
PATINDEX(TDAMAR_NCPR.ST_CIER_DOCU, "S")* ISNULL(TDAMAR_NCPR.IM_SALD_CORI,0)),            
"3"            
From   TCAMAR_NCPR , TDAMAR_NCPR, TMDOCP_GENE, TTDOCU_CNTB ' +            
@ISCA_WHER_0001 + @ISCA_WHER_0002 + '            
AND TCAMAR_NCPR.CO_EMPR = TMDOCP_GENE.CO_EMPR            
And TCAMAR_NCPR.FE_AMAR  <= "' + @IDFE_CANC + '"            
AND     TCAMAR_NCPR.TI_SITU = "ACT"            
AND    TDAMAR_NCPR.CO_TIDO_ORIG = TMDOCP_GENE.CO_TIPO_DOCU             
AND     TDAMAR_NCPR.NU_DOCU_ORIG = TMDOCP_GENE.NU_DOCU_PROV            
AND     TCAMAR_NCPR.CO_EMPR = TDAMAR_NCPR.CO_EMPR            
AND     TCAMAR_NCPR.CO_UNID_CONC = TDAMAR_NCPR.CO_UNID_CONC            
AND    TCAMAR_NCPR.NU_AMAR = TDAMAR_NCPR.NU_AMAR            
AND     TCAMAR_NCPR.FE_AMAR = TDAMAR_NCPR.FE_AMAR            
AND     TDAMAR_NCPR.CO_EMPR = TMDOCP_GENE.CO_EMPR            
AND     TCAMAR_NCPR.CO_PROV = TMDOCP_GENE.CO_PROV            
AND     TDAMAR_NCPR.CO_TIDO_ORIG = TMDOCP_GENE.CO_TIPO_DOCU            
AND     TDAMAR_NCPR.NU_DOCU_ORIG = TMDOCP_GENE.NU_DOCU_PROV            
AND TMDOCP_GENE.CO_ESTA_DOCU != "ANU"             
AND  TMDOCP_GENE.CO_TIPO_DOCU = TTDOCU_CNTB.TI_DOCU             
AND TTDOCU_CNTB.ST_DOCU_0004 = "S" ')            
            
--4.- APLICACIONES OCM Y OSR A DOCUMENTOS            
            
-- DOCUMENTOS            
EXECUTE('            
INSERT INTO #TWDOCU_PROV_Q31_1             
(CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_REPO,             
CO_MONE, FA_TIPO_CAMB, IM_PAGO,  TI_DETA)            
SELECT TCAMAR_OCPR.CO_EMPR, TMDOCP_GENE.CO_TIPO_DOCU, TMDOCP_GENE.NU_DOCU_PROV, TDAMAR_OCPR.CO_ENTI, TCAMAR_OCPR.FE_AMAR,            
TMDOCP_GENE.CO_MONE, TDAMAR_OCPR.TI_CAMB,         
(PatIndex(TTDOCU_CNTB.ST_SIGN,"S") - PatIndex(TTDOCU_CNTB.ST_SIGN,"N") ) *         
(PATINDEX(TDAMAR_OCPR.ST_CIER_DOCU, "N")* ISNULL(TDAMAR_OCPR.IM_PAGO_DEST,0) +         
 PATINDEX(TDAMAR_OCPR.ST_CIER_DOCU, "S")* ISNULL(TDAMAR_OCPR.IM_SALD_DEST,0)),            
"4"            
From   TCAMAR_OCPR , TDAMAR_OCPR, TMDOCP_GENE, TTDOCU_CNTB ' +             
@ISCA_WHER_0001 + @ISCA_WHER_0002 + '            
And     TCAMAR_OCPR.FE_AMAR  <= "' + @IDFE_CANC + '"            
AND     TCAMAR_OCPR.TI_SITU = "ACT"            
AND     TCAMAR_OCPR.CO_EMPR = TDAMAR_OCPR.CO_EMPR            
AND     TCAMAR_OCPR.CO_UNID_CONC = TDAMAR_OCPR.CO_UNID_CONC            
AND     TCAMAR_OCPR.NU_AMAR = TDAMAR_OCPR.NU_AMAR            
AND     TCAMAR_OCPR.FE_AMAR = TDAMAR_OCPR.FE_AMAR            
AND     TDAMAR_OCPR.CO_ENTI = TMDOCP_GENE.CO_PROV            
AND     TDAMAR_OCPR.CO_EMPR = TMDOCP_GENE.CO_EMPR            
AND     TDAMAR_OCPR.CO_TIDO_DEST = TMDOCP_GENE.CO_TIPO_DOCU            
AND     TDAMAR_OCPR.NU_DOCU_DEST = TMDOCP_GENE.NU_DOCU_PROV            
AND  (TMDOCP_GENE.NU_REND_GAST IS NULL OR TMDOCP_GENE.NU_REND_GAST = "")            
AND TMDOCP_GENE.CO_ESTA_DOCU != "ANU"             
AND TMDOCP_GENE.CO_TIPO_DOCU = TTDOCU_CNTB.TI_DOCU            
AND TTDOCU_CNTB.ST_DOCU_0008 = "N"            
AND TTDOCU_CNTB.ST_DOCU_0015 = "N"            
AND TTDOCU_CNTB.ST_DOCU_0017 = "N" ')            
            
            
-- ORDENES DE COMPRAS APLICADAS             
EXECUTE('            
INSERT INTO #TWDOCU_PROV_Q31_1             
(CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_REPO,             
CO_MONE, FA_TIPO_CAMB, IM_CXPA,  TI_DETA)            
SELECT TCAMAR_OCPR.CO_EMPR, TMDOCP_GENE.CO_TIPO_DOCU, TMDOCP_GENE.NU_DOCU_PROV, TCAMAR_OCPR.CO_PROV, TCAMAR_OCPR.FE_AMAR,            
TMDOCP_GENE.CO_MONE, TCAMAR_OCPR.FA_TIPO_CAMB,             
(PatIndex(TTDOCU_CNTB.ST_SIGN,"S") - PatIndex(TTDOCU_CNTB.ST_SIGN,"N") ) *             
(PATINDEX(TDAMAR_OCPR.ST_CIER_DOCU, "N")* ISNULL(TDAMAR_OCPR.IM_PAGO_ORIG,0) +         
 PATINDEX(TDAMAR_OCPR.ST_CIER_DOCU, "S")* ISNULL(TDAMAR_OCPR.IM_SALD_ORIG,0)),            
"4"            
From   TCAMAR_OCPR , TDAMAR_OCPR, TMDOCP_GENE, TTDOCU_CNTB ' +            
@ISCA_WHER_0001 + @ISCA_WHER_0002 + '            
AND  TCAMAR_OCPR.CO_EMPR = TMDOCP_GENE.CO_EMPR            
And    TCAMAR_OCPR.FE_AMAR  <= "' + @IDFE_CANC + '"            
AND    TCAMAR_OCPR.TI_SITU = "ACT"            
AND    TDAMAR_OCPR.CO_TIDO_ORIG = TMDOCP_GENE.CO_TIPO_DOCU             
AND    TDAMAR_OCPR.NU_DOCU_ORIG = TMDOCP_GENE.NU_DOCU_PROV            
AND    TCAMAR_OCPR.CO_EMPR = TDAMAR_OCPR.CO_EMPR            
AND    TCAMAR_OCPR.CO_UNID_CONC = TDAMAR_OCPR.CO_UNID_CONC            
AND    TCAMAR_OCPR.NU_AMAR = TDAMAR_OCPR.NU_AMAR            
AND    TCAMAR_OCPR.FE_AMAR = TDAMAR_OCPR.FE_AMAR            
AND    TDAMAR_OCPR.CO_EMPR = TMDOCP_GENE.CO_EMPR            
AND    TCAMAR_OCPR.CO_PROV = TMDOCP_GENE.CO_PROV            
AND    TDAMAR_OCPR.CO_TIDO_ORIG = TMDOCP_GENE.CO_TIPO_DOCU            
AND    TDAMAR_OCPR.NU_DOCU_ORIG = TMDOCP_GENE.NU_DOCU_PROV            
AND  TMDOCP_GENE.CO_ESTA_DOCU != "ANU"             
AND   TMDOCP_GENE.CO_TIPO_DOCU = TTDOCU_CNTB.TI_DOCU             
AND (TTDOCU_CNTB.ST_DOCU_0008 = "S"            
OR TTDOCU_CNTB.ST_DOCU_0015 = "S"            
OR TTDOCU_CNTB.ST_DOCU_0017 = "S") ' )            
            
--5.- CANJES            
            
-- SOLO MUESTRO LOS DOCUMENTOS QUE SE CANJEAN, NO LAS LETRAS GENERADAS            
EXECUTE('        
INSERT INTO #TWDOCU_PROV_Q31_1         
(CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_REPO,         
CO_MONE, FA_TIPO_CAMB, IM_PAGO,  TI_DETA)        
SELECT TCCANJ_PROV.CO_EMPR, TMDOCP_GENE.CO_TIPO_DOCU, TMDOCP_GENE.NU_DOCU_PROV, TCCANJ_PROV.CO_PROV, TCCANJ_PROV.FE_CANJ,         
TMDOCP_GENE.CO_MONE, TCCANJ_PROV.FA_TIPO_CAMB,        
( PatIndex(TTDOCU_CNTB.ST_SIGN,"S") - PatIndex(TTDOCU_CNTB.ST_SIGN,"N") ) *        
( PatIndex(TDCANJ_PROV.ST_CIER_DOCU, "N") *  TDCANJ_PROV.IM_CANJ_MDOC +         
  PatIndex(TDCANJ_PROV.ST_CIER_DOCU, "S") *  TDCANJ_PROV.IM_SALD_DOCU ),        
"5"        
From  TCCANJ_PROV , TDCANJ_PROV, TMDOCP_GENE, TTDOCU_CNTB ' +         
@ISCA_WHER_0001 + @ISCA_WHER_0002 + '        
AND TMDOCP_GENE.CO_TIPO_DOCU != "' + @OSTI_DOCU_CRET + '"        
And TCCANJ_PROV.CO_EMPR =   TMDOCP_GENE.CO_EMPR        
And    TCCANJ_PROV.FE_CANJ  <= "' + @IDFE_CANC + '"        
AND    TCCANJ_PROV.TI_SITU != "ANU"      
AND    TCCANJ_PROV.TI_SITU != "EXT"       
AND    TCCANJ_PROV.CO_EMPR = TDCANJ_PROV.CO_EMPR        
AND    TCCANJ_PROV.CO_UNID_CONC = TDCANJ_PROV.CO_UNID_CONC        
AND    TCCANJ_PROV.CO_PROV = TDCANJ_PROV.CO_PROV        
AND    TCCANJ_PROV.NU_CANJ = TDCANJ_PROV.NU_CANJ        
AND    TCCANJ_PROV.FE_CANJ = TDCANJ_PROV.FE_CANJ        
AND    TDCANJ_PROV.CO_PROV = TMDOCP_GENE.CO_PROV        
AND    TDCANJ_PROV.CO_TIPO_DOCU = TMDOCP_GENE.CO_TIPO_DOCU         
AND    TDCANJ_PROV.NU_DOCU_PROV = TMDOCP_GENE.NU_DOCU_PROV         
AND (TMDOCP_GENE.NU_REND_GAST IS NULL OR TMDOCP_GENE.NU_REND_GAST = "")        
AND TMDOCP_GENE.CO_ESTA_DOCU != "ANU"         
AND  TMDOCP_GENE.CO_TIPO_DOCU = TTDOCU_CNTB.TI_DOCU ')        
      
           
            
--6.- RENOVACIONES            
            
-- SOLO MUESTRO LOS DOCUMENTOS QUE SE RENUEVAN, NO LAS LETRAS GENERADAS            
EXECUTE('            
INSERT INTO #TWDOCU_PROV_Q31_1             
(CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_REPO,             
CO_MONE, FA_TIPO_CAMB, IM_PAGO,  TI_DETA)            
SELECT TCRENO_PROV.CO_EMPR, TMDOCP_GENE.CO_TIPO_DOCU, TMDOCP_GENE.NU_DOCU_PROV, TCRENO_PROV.CO_PROV, TCRENO_PROV.FE_RENO,            
TMDOCP_GENE.CO_MONE, TCRENO_PROV.FA_TIPO_CAMB,            
( PatIndex(TTDOCU_CNTB.ST_SIGN,"S") - PatIndex(TTDOCU_CNTB.ST_SIGN,"N") ) *             
( PatIndex(TDRENO_PROV.ST_CIER_DOCU, "N") *  TDRENO_PROV.IM_RENO_MDOC +             
  PatIndex(TDRENO_PROV.ST_CIER_DOCU, "S") *  TDRENO_PROV.IM_SALD_DOCU ),            
"6"            
From   TCRENO_PROV , TDRENO_PROV, TMDOCP_GENE, TTDOCU_CNTB ' +            
@ISCA_WHER_0001 + @ISCA_WHER_0002 + '            
AND  TCRENO_PROV.CO_EMPR =   TMDOCP_GENE.CO_EMPR            
And    TCRENO_PROV.FE_RENO  <= "' + @IDFE_CANC + '"            
AND    TCRENO_PROV.TI_SITU != "ANU"            
AND    TCRENO_PROV.TI_SITU != "EXT"          
AND    TCRENO_PROV.CO_EMPR = TDRENO_PROV.CO_EMPR            
AND    TCRENO_PROV.CO_UNID_CONC = TDRENO_PROV.CO_UNID_CONC            
AND    TCRENO_PROV.CO_PROV = TDRENO_PROV.CO_PROV            
AND    TCRENO_PROV.NU_RENO = TDRENO_PROV.NU_RENO            
AND    TCRENO_PROV.FE_RENO = TDRENO_PROV.FE_RENO            
AND    TDRENO_PROV.CO_PROV = TMDOCP_GENE.CO_PROV            
AND    TDRENO_PROV.CO_TIPO_DOCU = TMDOCP_GENE.CO_TIPO_DOCU             
AND    TDRENO_PROV.NU_DOCU_PROV = TMDOCP_GENE.NU_DOCU_PROV             
AND  TMDOCP_GENE.CO_ESTA_DOCU != "ANU"             
AND (TMDOCP_GENE.NU_REND_GAST IS NULL OR TMDOCP_GENE.NU_REND_GAST = "")            
AND  TMDOCP_GENE.CO_TIPO_DOCU = TTDOCU_CNTB.TI_DOCU ')            
            
            
--7.- DEVOLUCION DE ANTICIPOS            
EXECUTE('            
INSERT INTO #TWDOCU_PROV_Q31_1             
(CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_REPO,             
CO_MONE, FA_TIPO_CAMB,            
IM_PAGO,  TI_DETA)            
Select TDDEVO_ANTC.CO_EMPR, TDDEVO_ANTC.CO_TIPO_DOCU, TDDEVO_ANTC.NU_DOCU_PROV, TMDOCP_GENE.CO_PROV, TCMOVI_BANC.FE_OPER,            
TMDOCP_GENE.CO_MONE, TCMOVI_BANC.FA_TIPO_CAMB, -TDDEVO_ANTC.IM_DEVO,             
"7"            
From  TDDEVO_ANTC, TCMOVI_BANC, TMCNTA_BANC, TMDOCP_GENE, TTDOCU_CNTB ' +             
@ISCA_WHER_0001 + @ISCA_WHER_0002 + '            
And  TCMOVI_BANC.FE_OPER  <= "' + @IDFE_CANC + '"            
And  TCMOVI_BANC.TI_SITU = "ACT"             
And    TDDEVO_ANTC.CO_EMPR = TCMOVI_BANC.CO_EMPR              
And    TDDEVO_ANTC.CO_BANC = TCMOVI_BANC.CO_BANC              
And    TDDEVO_ANTC.NU_CNTA_BANC  = TCMOVI_BANC.NU_CNTA_BANC              
And    TDDEVO_ANTC.AA_BNCO = TCMOVI_BANC.AA_BNCO            
And    TDDEVO_ANTC.MM_BNCO = TCMOVI_BANC.MM_BNCO             
And    TDDEVO_ANTC.TI_MOVI_BANC  = TCMOVI_BANC.TI_MOVI_BANC             
And    TDDEVO_ANTC.NU_COMP_BANC = TCMOVI_BANC.NU_COMP_BANC            
And    TDDEVO_ANTC.CO_EMPR = TMCNTA_BANC.CO_EMPR              
And    TDDEVO_ANTC.CO_BANC = TMCNTA_BANC.CO_BANC              
And    TDDEVO_ANTC.NU_CNTA_BANC  = TMCNTA_BANC.NU_CNTA_BANC            
AND  TDDEVO_ANTC.CO_EMPR = TMDOCP_GENE.CO_EMPR            
AND  TCMOVI_BANC.CO_ENTI = TMDOCP_GENE.CO_PROV            
AND   TDDEVO_ANTC.CO_TIPO_DOCU = TMDOCP_GENE.CO_TIPO_DOCU            
AND   TDDEVO_ANTC.NU_DOCU_PROV = TMDOCP_GENE.NU_DOCU_PROV            
AND   TMDOCP_GENE.CO_TIPO_DOCU = TTDOCU_CNTB.TI_DOCU ')  


--7.5.- DEVOLUCION DE ANTICIPOS CAJA           
EXECUTE('            
INSERT INTO #TWDOCU_PROV_Q31_1             
(CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, 
CO_PROV, FE_REPO,             
CO_MONE, FA_TIPO_CAMB,            
IM_PAGO,  TI_DETA)      
      
Select TDDEVA_CAJP.CO_EMPR, TDDEVA_CAJP.CO_TIPO_DOCU, TDDEVA_CAJP.NU_DOCU_PROV, 
TMDOCP_GENE.CO_PROV, TCMOVI_CAJA.FE_OPER,            
TMDOCP_GENE.CO_MONE, TCMOVI_CAJA.FA_TIPO_CAMB,
 -TDDEVA_CAJP.IM_DEVO, "7"  
          
From  TDDEVA_CAJP, TCMOVI_CAJA, TMCAJA, TMDOCP_GENE, TTDOCU_CNTB ' +             
@ISCA_WHER_0001 + @ISCA_WHER_0002 + '            
And  TCMOVI_CAJA.FE_OPER  <= "' + @IDFE_CANC + '"            
And  TCMOVI_CAJA.TI_SITU = "ACT"             
And  TDDEVA_CAJP.CO_EMPR = TCMOVI_CAJA.CO_EMPR        
And  TDDEVA_CAJP.CO_CAJA = TCMOVI_CAJA.CO_CAJA        
And  TDDEVA_CAJP.AA_CAJA = TCMOVI_CAJA.AA_CAJA      
And  TDDEVA_CAJP.MM_CAJA = TCMOVI_CAJA.MM_CAJA       
And  TDDEVA_CAJP.TI_MOVI  = TCMOVI_CAJA.TI_MOVI       
And  TDDEVA_CAJP.NU_COMP_CAJA = TCMOVI_CAJA.NU_COMP_CAJA            
And  TDDEVA_CAJP.CO_EMPR = TMCAJA.CO_EMPR        
And  TDDEVA_CAJP.CO_CAJA = TMCAJA.CO_CAJA             
AND  TDDEVA_CAJP.CO_EMPR = TMDOCP_GENE.CO_EMPR            
AND  TCMOVI_CAJA.CO_ENTI = TMDOCP_GENE.CO_PROV            
AND  TDDEVA_CAJP.CO_TIPO_DOCU = TMDOCP_GENE.CO_TIPO_DOCU            
AND  TDDEVA_CAJP.NU_DOCU_PROV = TMDOCP_GENE.NU_DOCU_PROV            
AND  TMDOCP_GENE.CO_TIPO_DOCU = TTDOCU_CNTB.TI_DOCU ')
          
            
------------------------------------------------------------------            
----- CONVIERTO LOS IMPORTES A LA MONEDA DE PRESENTACION            
------------------------------------------------------------------            
            
IF @ISST_USUA = 'S'            
 UPDATE #TWDOCU_PROV_Q31_1            
  SET IM_CXPA_CONV = (SELECT OFITESO.dbo.FN_TCFACT_CAMB_Q02(T1.CO_MONE, @ISCO_MONE_PRES, T1.FE_REPO,             
   T1.IM_CXPA, T2.TI_CAMB, T2.TI_ORIG, 'S', T2.CO_MONE_DEFA, T2.CO_MONE_EXTR, @INFA_USUA)),           
      IM_PAGO_CONV = (SELECT OFITESO.dbo.FN_TCFACT_CAMB_Q02(T1.CO_MONE, @ISCO_MONE_PRES, T1.FE_REPO,             
   T1.IM_PAGO, T2.TI_CAMB, T2.TI_ORIG, 'S', T2.CO_MONE_DEFA, T2.CO_MONE_EXTR, @INFA_USUA))            
  FROM #TWDOCU_PROV_Q31_1 T1, TMPARA_TESO T2            
  WHERE T1.CO_EMPR = T2.CO_EMPR            
ELSE            
  UPDATE #TWDOCU_PROV_Q31_1            
  SET IM_CXPA_CONV = (SELECT OFITESO.dbo.FN_TCFACT_CAMB_Q02(T1.CO_MONE, @ISCO_MONE_PRES, T1.FE_REPO,             
   T1.IM_CXPA, T2.TI_CAMB, T2.TI_ORIG, 'S', T2.CO_MONE_DEFA, T2.CO_MONE_EXTR, T1.FA_TIPO_CAMB)),            
      IM_PAGO_CONV = (SELECT OFITESO.dbo.FN_TCFACT_CAMB_Q02(T1.CO_MONE, @ISCO_MONE_PRES, T1.FE_REPO,             
   T1.IM_PAGO, T2.TI_CAMB, T2.TI_ORIG, 'S', T2.CO_MONE_DEFA, T2.CO_MONE_EXTR, T1.FA_TIPO_CAMB))           
  FROM #TWDOCU_PROV_Q31_1 T1, TMPARA_TESO T2            
  WHERE T1.CO_EMPR = T2.CO_EMPR            
            
--select * from #TWDOCU_PROV_Q31_1            
            
------------------------------------------------------------------            
----- AGRUPO POR DUCUMENTO E INSERTO EN LA TABLA TEMPORAL            
------------------------------------------------------------------            
            
 Insert Into #TWDOCU_PROV_Q31_1             
    (CO_EMPR, CO_TIPO_DOCU, NU_DOCU_PROV, CO_PROV, FE_EMIS, FE_VENC, CO_TIPO_OPER, CO_MONE,            
       FA_TIPO_CAMB, IM_CXPA,  IM_CXPA_CONV, IM_PAGO, IM_PAGO_CONV,  IM_CONV, ST_FLAG)            
 Select    T1.CO_EMPR , T1.CO_TIPO_DOCU, T1.NU_DOCU_PROV, T1.CO_PROV,             
    MAX(T1.FE_EMIS), MAX(T1.FE_VENC), MAX(T1.CO_TIPO_OPER),             
    MAX(T1.CO_MONE), MAX(T1.FA_TIPO_CAMB),             
    SUM(T1.IM_CXPA), SUM(T1.IM_CXPA_CONV), SUM(T1.IM_PAGO),             
    SUM(T1.IM_PAGO_CONV), SUM(T1.IM_CXPA_CONV - T1.IM_PAGO_CONV), 'S'            
 From    #TWDOCU_PROV_Q31_1 T1            
 Where   T1.FE_REPO >= @IDFE_INIC            
 Group By  T1.CO_EMPR, T1.CO_PROV, T1.CO_TIPO_DOCU, T1.NU_DOCU_PROV            
            
--SELECT * FROM #TWDOCU_PROV_Q31_1            
--ORDER BY CO_EMPR, CO_PROV, CO_TIPO_DOCU, NU_DOCU_PROV            
            
IF @ISTI_SALD = 'C'            
 DELETE #TWDOCU_PROV_Q31_1            
 WHERE  IM_CXPA = IM_PAGO            
 AND ST_FLAG = 'S'            
            
IF @ISTI_SALD = 'S'            
 DELETE #TWDOCU_PROV_Q31_1            
 WHERE  IM_CXPA != IM_PAGO            
 AND ST_FLAG = 'S'            
            
-- SALDOS INICIALES            
 INSERT INTO #TWDOCU_PROV_Q31_2(CO_EMPR, CO_PROV, CO_MONE, IM_SAIN, IM_SAIN_CONV)             
 Select  CO_EMPR, CO_PROV, CO_MONE,            
  SUM( ISNULL(IM_CXPA,0) ) - SUM( ISNULL(IM_PAGO,0) ), SUM( ISNULL(IM_CXPA_CONV - IM_PAGO_CONV,0) )            
 From  #TWDOCU_PROV_Q31_1            
 Where  FE_REPO < @IDFE_INIC            
 And ST_FLAG IS NULL            
 Group By  CO_EMPR, CO_PROV, CO_MONE            
            
 DELETE #TWDOCU_PROV_Q31_1            
 WHERE ST_FLAG IS NULL            
            
--SELECT * FROM #TWDOCU_PROV_Q31_1            
--WHERE ST_FLAG = 'S'            
--ORDER BY CO_EMPR, CO_PROV, CO_TIPO_DOCU, NU_DOCU_PROV            
--SELECT * FROM #TWDOCU_PROV_Q31_2            
            
--DETALLADO            
IF @ISTI_REPO = 'D'             
BEGIN            
             
 IF @ISDE_ORDE = '1'            
  SELECT @VSDE_ORDE = ' ORDER BY 1, 24, 3, 23, 25, 5, 6 '            
 IF @ISDE_ORDE = '2'            
  SELECT @VSDE_ORDE = ' ORDER BY 1, 24, 3, 23, 5, 6 '            
 IF @ISDE_ORDE = '3'            
  SELECT @VSDE_ORDE = ' ORDER BY 1, 24, 4, 23, 5, 6 '            
            
 SELECT  @VSFE_INIC = CONVERT(VARCHAR(10), @IDFE_INIC, 103),            
  @VSFE_FINA = CONVERT(VARCHAR(10), @IDFE_FINA, 103)            
            
      INSERT INTO #TWDOCU_PROV_Q31_3 (CO_EMPR, CO_PROV, CO_TIPO_DOCU, NU_DOCU_PROV,             
  FE_EMIS, FE_VENC, CO_MONE, CO_TIPO_OPER, IM_SAIN, IM_SAIN_CONV, IM_CXPA, IM_PAGO,             
  FA_TIPO_CAMB, T1.IM_CONV, TI_DETA_PROV, TI_DETA_EMPR)            
 SELECT T1.CO_EMPR, T1.CO_PROV, T1.CO_TIPO_DOCU, T1.NU_DOCU_PROV, T1.FE_EMIS,            
  T1.FE_VENC, T1.CO_MONE, T1.CO_TIPO_OPER, 0, 0, ISNULL(T1.IM_CXPA, 0), ISNULL(T1.IM_PAGO, 0),            
  ISNULL(T1.FA_TIPO_CAMB, 0), ISNULL(T1.IM_CONV, 0), '1', '1'            
 FROM  #TWDOCU_PROV_Q31_1 T1            
            
            
      INSERT INTO #TWDOCU_PROV_Q31_3 (CO_EMPR, CO_PROV, CO_TIPO_DOCU, NU_DOCU_PROV,             
  FE_EMIS, FE_VENC, CO_MONE, CO_TIPO_OPER, IM_SAIN, IM_SAIN_CONV, IM_CXPA, IM_PAGO,             
  FA_TIPO_CAMB, T1.IM_CONV, TI_DETA_PROV, TI_DETA_EMPR)            
 SELECT T1.CO_EMPR, T1.CO_PROV, '', '', MAX(T1.FE_EMIS),             
  NULL, T1.CO_MONE, '', ISNULL( MAX(T3.IM_SAIN), 0 ), ISNULL( MAX(T3.IM_SAIN_CONV), 0 ),             
  SUM(ISNULL(T1.IM_CXPA, 0)), SUM(ISNULL(T1.IM_PAGO, 0)), 0, SUM(ISNULL(T1.IM_CONV, 0)),            
  '2', '1'            
 FROM  #TWDOCU_PROV_Q31_1 T1            
    LEFT OUTER JOIN #TWDOCU_PROV_Q31_2 T3            
    ON  T1.CO_EMPR = T3.CO_EMPR            
 And T1.CO_PROV = T3.CO_PROV            
 And T1.CO_MONE = T3.CO_MONE             
    INNER JOIN TTMONE T2            
    ON T1.CO_MONE = T2.CO_MONE             
 GROUP BY T1.CO_EMPR, T1.CO_PROV, T1.CO_MONE            
            
            
      INSERT INTO #TWDOCU_PROV_Q31_3 (CO_EMPR, CO_PROV, CO_TIPO_DOCU, NU_DOCU_PROV,             
  FE_EMIS, FE_VENC, CO_MONE, CO_TIPO_OPER, IM_SAIN, IM_SAIN_CONV, IM_CXPA, IM_PAGO,             
  FA_TIPO_CAMB, T1.IM_CONV, TI_DETA_PROV, TI_DETA_EMPR)            
 SELECT T1.CO_EMPR, T1.CO_PROV, '',  '', NULL, NULL, T1.CO_MONE, '', ISNULL(T1.IM_SAIN, 0),             
  ISNULL(T1.IM_SAIN_CONV, 0), 0, 0, 0, ISNULL(T1.IM_SAIN_CONV, 0), '2', '1'            
 FROM  #TWDOCU_PROV_Q31_2 T1, TTMONE T2            
 WHERE  T1.CO_MONE = T2.CO_MONE             
 AND NOT EXISTS (SELECT  T3.CO_EMPR            
   FROM  #TWDOCU_PROV_Q31_1 T3            
   WHERE  T1.CO_EMPR = T3.CO_EMPR            
   AND  T1.CO_PROV = T3.CO_PROV            
   AND  T1.CO_MONE = T3.CO_MONE )            
            
            
      INSERT INTO #TWDOCU_PROV_Q31_3 (CO_EMPR, CO_PROV, CO_TIPO_DOCU, NU_DOCU_PROV,             
  FE_EMIS, FE_VENC, CO_MONE, CO_TIPO_OPER, IM_SAIN, IM_SAIN_CONV, IM_CXPA, IM_PAGO,             
  FA_TIPO_CAMB, T1.IM_CONV, TI_DETA_PROV, TI_DETA_EMPR)            
 SELECT T1.CO_EMPR, T1.CO_PROV, '', '', NULL, NULL, '', '', 0, ISNULL(MAX(T3.IM_SAIN_CONV), 0),            
  SUM(ISNULL(T1.IM_CXPA_CONV, 0)), SUM(ISNULL(T1.IM_PAGO_CONV, 0)), 0, 0, '3', '1'            
 FROM  #TWDOCU_PROV_Q31_1 T1            
    LEFT OUTER JOIN (SELECT CO_EMPR, CO_PROV,            
         SUM(IM_SAIN_CONV) IM_SAIN_CONV             
     FROM #TWDOCU_PROV_Q31_2             
     GROUP BY CO_EMPR, CO_PROV) T3            
    ON  T1.CO_EMPR = T3.CO_EMPR            
 And T1.CO_PROV = T3.CO_PROV            
 GROUP BY T1.CO_EMPR, T1.CO_PROV            
            
            
      INSERT INTO #TWDOCU_PROV_Q31_3 (CO_EMPR, CO_PROV, CO_TIPO_DOCU, NU_DOCU_PROV,             
  FE_EMIS, FE_VENC, CO_MONE, CO_TIPO_OPER, IM_SAIN, IM_SAIN_CONV, IM_CXPA, IM_PAGO,             
  FA_TIPO_CAMB, T1.IM_CONV, TI_DETA_PROV, TI_DETA_EMPR)            
 SELECT T1.CO_EMPR, T1.CO_PROV, '', '', NULL, NULL, '', '', SUM(ISNULL(T1.IM_SAIN_CONV, 0)),             
  0, 0, 0, 0, 0, '3', '1'            
 FROM  #TWDOCU_PROV_Q31_2 T1            
 WHERE  NOT EXISTS (SELECT  T3.CO_EMPR            
    FROM  #TWDOCU_PROV_Q31_1 T3            
    WHERE  T1.CO_EMPR = T3.CO_EMPR            
    AND  T1.CO_PROV = T3.CO_PROV )            
 GROUP BY T1.CO_EMPR, T1.CO_PROV            
            
            
      INSERT INTO #TWDOCU_PROV_Q31_3 (CO_EMPR, CO_PROV, CO_TIPO_DOCU, NU_DOCU_PROV,            
  FE_EMIS, FE_VENC, CO_MONE, CO_TIPO_OPER, IM_SAIN, IM_SAIN_CONV, IM_CXPA, IM_PAGO,             
  FA_TIPO_CAMB, T1.IM_CONV, TI_DETA_PROV, TI_DETA_EMPR)     SELECT T1.CO_EMPR, (SELECT MAX(CO_PROV) FROM #TWDOCU_PROV_Q31_1),          
'', '',             
  MAX(T1.FE_EMIS),NULL, T1.CO_MONE, '', ISNULL(MAX(T3.IM_SAIN), 0), ISNULL(MAX(T3.IM_SAIN_CONV), 0),            
  SUM(ISNULL(T1.IM_CXPA, 0)), SUM(ISNULL(T1.IM_PAGO, 0)), 0, SUM(ISNULL(T1.IM_CONV, 0)),             
  '2', '2'     FROM  #TWDOCU_PROV_Q31_1 T1            
    INNER JOIN TTMONE T2            
    ON T1.CO_MONE = T2.CO_MONE             
    LEFT OUTER JOIN  (SELECT CO_EMPR, CO_MONE,            
         SUM(IM_SAIN) IM_SAIN,             
         SUM(IM_SAIN_CONV) IM_SAIN_CONV             
      FROM #TWDOCU_PROV_Q31_2             
      GROUP BY CO_EMPR, CO_MONE)T3            
    ON  T1.CO_EMPR = T3.CO_EMPR            
 AND T1.CO_MONE = T3.CO_MONE             
 GROUP BY T1.CO_EMPR,  T1.CO_MONE             
            
            
    INSERT INTO #TWDOCU_PROV_Q31_3 (CO_EMPR, CO_PROV, CO_TIPO_DOCU, NU_DOCU_PROV,             
  FE_EMIS, FE_VENC, CO_MONE, CO_TIPO_OPER, IM_SAIN, IM_SAIN_CONV, IM_CXPA, IM_PAGO,             
  FA_TIPO_CAMB, T1.IM_CONV, TI_DETA_PROV, TI_DETA_EMPR)            
 SELECT T1.CO_EMPR, MAX(T1.CO_PROV), '', '', NULL, NULL, T1.CO_MONE, '', SUM(ISNULL(T1.IM_SAIN, 0)),             
  SUM(ISNULL(T1.IM_SAIN_CONV, 0)), 0, 0, 0, SUM(ISNULL(T1.IM_SAIN_CONV, 0)),             
  '2', '2'      
 FROM  #TWDOCU_PROV_Q31_2 T1, TTMONE T2            
 WHERE  T1.CO_MONE = T2.CO_MONE             
 AND NOT EXISTS (SELECT  T3.CO_EMPR            
   FROM  #TWDOCU_PROV_Q31_1 T3            
   WHERE  T1.CO_EMPR = T3.CO_EMPR            
   AND  T1.CO_MONE = T3.CO_MONE )            
 GROUP BY T1.CO_EMPR,  T1.CO_MONE            
            
            
      INSERT INTO #TWDOCU_PROV_Q31_3 (CO_EMPR, CO_PROV, CO_TIPO_DOCU, NU_DOCU_PROV,             
  FE_EMIS, FE_VENC, CO_MONE, CO_TIPO_OPER, IM_SAIN, IM_SAIN_CONV, IM_CXPA, IM_PAGO,             
  FA_TIPO_CAMB, T1.IM_CONV, TI_DETA_PROV, TI_DETA_EMPR)            
 SELECT T1.CO_EMPR, MAX(T1.CO_PROV), '', '', NULL, NULL, '', '', 0, ISNULL(MAX(T3.IM_SAIN_CONV), 0),            
  SUM(ISNULL(T1.IM_CXPA_CONV, 0)), SUM(ISNULL(T1.IM_PAGO_CONV, 0)), 0, 0, '3', '2'            
 FROM  #TWDOCU_PROV_Q31_1 T1            
    LEFT OUTER JOIN (SELECT CO_EMPR,            
            SUM(IM_SAIN_CONV) IM_SAIN_CONV             
     FROM #TWDOCU_PROV_Q31_2             
     GROUP BY CO_EMPR) T3            
    ON T1.CO_EMPR = T3.CO_EMPR            
 GROUP BY T1.CO_EMPR            
            
--SELECT * FROM #TWDOCU_PROV_Q31_3             
            
 EXECUTE('            
 SELECT  T1.CO_EMPR,  T3.DE_NOMB, T1.CO_PROV, T2.NO_AUXI, T1.CO_TIPO_DOCU,             
  T1.NU_DOCU_PROV, CONVERT(VARCHAR(10), T1.FE_EMIS, 103), CONVERT(VARCHAR(10), T1.FE_VENC, 103), T1.CO_MONE, T4.SB_MONE,             
  T4.DE_MONE, T1.CO_TIPO_OPER, T1.IM_SAIN, T1.IM_SAIN_CONV, T1.IM_CXPA,             
  T1.IM_PAGO, T1.FA_TIPO_CAMB, T2.NO_DIRE, T2.CO_UBIC_GEOG, T2.NU_TLFN,             
  T2.NU_FAXE, T1.IM_CONV, T1.TI_DETA_PROV, T1.TI_DETA_EMPR, T1.FE_EMIS            
 FROM  #TWDOCU_PROV_Q31_3 T1            
    INNER JOIN TMAUXI_EMPR T2            
    ON  T1.CO_EMPR = T2.CO_EMPR            
 AND T2.TI_AUXI_EMPR = "' + @ISTI_AUXI_PROV + '"            
 AND T1.CO_PROV = T2.CO_AUXI_EMPR            
    INNER JOIN TMEMPR T3            
    ON T1.CO_EMPR = T3.CO_EMPR            
    LEFT OUTER JOIN TTMONE T4            
    ON T1.CO_MONE = T4.CO_MONE             
 WHERE (T1.IM_SAIN != 0            
 OR  T1.IM_SAIN_CONV != 0            
 OR  T1.IM_CXPA != 0             
 OR  T1.IM_PAGO != 0)'+ @VSDE_ORDE)            
/*            
 WHERE T4.TI_AUXI_EMPR = '' + @ISTI_AUXI_PROV + ''            
  AND T1.CO_EMPR = T2.CO_EMPR            
  AND T1.CO_EMPR = T4.CO_EMPR            
  AND T1.CO_PROV = T4.CO_AUXI_EMPR ) T1            
 WHERE T1.IM_SAIN != 0            
 OR T1.IM_SAIN_CONV != 0            
 OR T1.IM_CXPA != 0             
 OR T1.IM_PAGO != 0 ' + @VSDE_ORDE)            
*/            
            
END            
            
IF @ISTI_REPO = 'R'             
BEGIN            
 IF @ISDE_ORDE = '3'            
 SELECT @VSDE_ORDE = ' ORDER BY 15, 1, 14, 4, 5 '            
 ELSE            
  SELECT @VSDE_ORDE = ' ORDER BY 15, 1, 14, 3, 5 '            
            
 INSERT INTO #TWDOCU_PROV_Q31_3 (T1.CO_EMPR, T1.CO_PROV, T1.CO_MONE, T1.IM_SAIN, T1.IM_CXPA,             
 T1.IM_PAGO, T1.IM_CONV, T1.IM_SAIN_CONV, T1.IM_CONV_TOTA, T1.TI_DETA_EMPR,             
 T1.TI_DETA_GENE)            
 SELECT  T1.CO_EMPR, T1.CO_PROV, T1.CO_MONE, ISNULL(MAX(T3.IM_SAIN), 0), SUM(ISNULL( T1.IM_CXPA, 0 )),             
  SUM(ISNULL( T1.IM_PAGO, 0 )), SUM(ISNULL( T1.IM_CONV, 0 )), ISNULL(MAX(T3.IM_SAIN_CONV), 0),            
  (SELECT SUM(T11.IM_CONV)             
   FROM #TWDOCU_PROV_Q31_1 T11            
   WHERE T1.CO_EMPR = T11.CO_EMPR            
   AND T1.CO_PROV = T11.CO_PROV            
   GROUP BY T11.CO_EMPR, T11.CO_PROV) + ISNULL(MAX(T4.IM_SAIN_CONV), 0),             
  '1', '1'            
 FROM  #TWDOCU_PROV_Q31_1 T1            
    LEFT OUTER JOIN #TWDOCU_PROV_Q31_2 T3            
    ON  T1.CO_EMPR = T3.CO_EMPR            
 And T1.CO_PROV = T3.CO_PROV            
 And T1.CO_MONE = T3.CO_MONE            
    LEFT OUTER JOIN (SELECT CO_EMPR, CO_PROV, SUM(IM_SAIN_CONV) IM_SAIN_CONV,             
    SUM(IM_SAIN) + SUM(IM_SAIN_CONV) IM_CONV_TOTA             
    FROM #TWDOCU_PROV_Q31_2             
    GROUP BY CO_EMPR, CO_PROV) T4             
    ON  T1.CO_EMPR = T4.CO_EMPR            
 And T1.CO_PROV = T4.CO_PROV            
    INNER JOIN TTMONE T2            
    ON T1.CO_MONE = T2.CO_MONE             
 GROUP BY T1.CO_EMPR, T1.CO_PROV, T1.CO_MONE            
            
 INSERT INTO #TWDOCU_PROV_Q31_3 (T1.CO_EMPR, T1.CO_PROV, T1.CO_MONE, T1.IM_SAIN, T1.IM_CXPA,             
 T1.IM_PAGO, T1.IM_CONV, T1.IM_SAIN_CONV, T1.IM_CONV_TOTA, T1.TI_DETA_EMPR,             
 T1.TI_DETA_GENE)            
 SELECT T1.CO_EMPR, T1.CO_PROV, T1.CO_MONE, T1.IM_SAIN, 0, 0,             
  0, T1.IM_SAIN_CONV, T1.IM_SAIN_CONV, '1', '1'            
 FROM  #TWDOCU_PROV_Q31_2 T1, TTMONE T2            
 WHERE  T1.CO_MONE = T2.CO_MONE             
 AND NOT EXISTS (SELECT  T3.CO_EMPR            
   FROM  #TWDOCU_PROV_Q31_1 T3            
   WHERE  T1.CO_EMPR = T3.CO_EMPR            
   AND  T1.CO_PROV = T3.CO_PROV            
   AND  T1.CO_MONE = T3.CO_MONE )            
            
            
 INSERT INTO #TWDOCU_PROV_Q31_3 (T1.CO_EMPR, T1.CO_PROV, T1.CO_MONE, T1.IM_SAIN, T1.IM_CXPA,             
 T1.IM_PAGO, T1.IM_CONV, T1.IM_SAIN_CONV, T1.IM_CONV_TOTA, T1.TI_DETA_EMPR,             
 T1.TI_DETA_GENE)            
 SELECT T1.CO_EMPR, (SELECT MAX(CO_PROV) FROM #TWDOCU_PROV_Q31_1), T1.CO_MONE, ISNULL(MAX(T3.IM_SAIN), 0),            
  SUM(ISNULL( T1.IM_CXPA, 0 )), SUM(ISNULL( T1.IM_PAGO, 0 )), SUM(ISNULL( T1.IM_CONV, 0 )),            
  ISNULL(MAX(T3.IM_SAIN_CONV), 0), 0, '2', '1'            
 FROM  #TWDOCU_PROV_Q31_1 T1            
    LEFT OUTER JOIN (SELECT CO_EMPR, CO_MONE,            
        SUM(IM_SAIN) IM_SAIN,             
        SUM(IM_SAIN_CONV) IM_SAIN_CONV             
     FROM #TWDOCU_PROV_Q31_2             
     GROUP BY CO_EMPR, CO_MONE) T3            
    ON  T1.CO_EMPR = T3.CO_EMPR            
 AND T1.CO_MONE = T3.CO_MONE            
    INNER JOIN TTMONE T2             
 ON T1.CO_MONE = T2.CO_MONE             
 GROUP BY T1.CO_EMPR,  T1.CO_MONE             
            
 INSERT INTO #TWDOCU_PROV_Q31_3 (T1.CO_EMPR, T1.CO_PROV, T1.CO_MONE, T1.IM_SAIN, T1.IM_CXPA,             
 T1.IM_PAGO, T1.IM_CONV, T1.IM_SAIN_CONV, T1.IM_CONV_TOTA, T1.TI_DETA_EMPR,             
 T1.TI_DETA_GENE)            
 SELECT T1.CO_EMPR, (SELECT MAX(CO_PROV) FROM #TWDOCU_PROV_Q31_1), T1.CO_MONE, ISNULL(MAX(T3.IM_SAIN), 0),            
  0, 0, 0, ISNULL(MAX(T3.IM_SAIN_CONV), 0), 0, '2', '1'            
 FROM  #TWDOCU_PROV_Q31_2 T1            
    LEFT OUTER JOIN (SELECT CO_EMPR, CO_MONE,            
        SUM(ISNULL(IM_SAIN, 0)) IM_SAIN,             
        SUM(ISNULL(IM_SAIN_CONV, 0)) IM_SAIN_CONV             
     FROM #TWDOCU_PROV_Q31_2             
 GROUP BY CO_EMPR, CO_MONE)T3            
    ON  T1.CO_EMPR = T3.CO_EMPR            
 AND T1.CO_MONE = T3.CO_MONE            
    INNER JOIN TTMONE T2            
    ON T1.CO_MONE = T2.CO_MONE             
 AND NOT EXISTS (SELECT  T3.CO_EMPR            
   FROM  #TWDOCU_PROV_Q31_1 T3            
   WHERE  T1.CO_EMPR = T3.CO_EMPR            
   AND  T1.CO_MONE = T3.CO_MONE )            
 GROUP BY T1.CO_EMPR,  T1.CO_MONE            
            
            
 INSERT INTO #TWDOCU_PROV_Q31_3 (T1.CO_EMPR, T1.CO_PROV, T1.CO_MONE, T1.IM_SAIN, T1.IM_CXPA,             
 T1.IM_PAGO, T1.IM_CONV, T1.IM_SAIN_CONV, T1.IM_CONV_TOTA, T1.TI_DETA_EMPR,             
 T1.TI_DETA_GENE)            
 SELECT T1.CO_EMPR, MAX(T1.CO_PROV), '', 0, SUM(ISNULL( T1.IM_CXPA_CONV, 0 )),            
  SUM(ISNULL( T1.IM_PAGO_CONV, 0 )), SUM(ISNULL( T1.IM_CONV, 0 )),            
  ISNULL(MAX(T3.IM_SAIN_CONV), 0), 0, '3', '1'            
 FROM  #TWDOCU_PROV_Q31_1 T1            
    LEFT OUTER JOIN  (SELECT CO_EMPR, SUM(ISNULL(IM_SAIN_CONV, 0)) IM_SAIN_CONV             
     FROM #TWDOCU_PROV_Q31_2             
     GROUP BY CO_EMPR) T3            
    ON T1.CO_EMPR = T3.CO_EMPR            
 GROUP BY T1.CO_EMPR            
            
            
 INSERT INTO #TWDOCU_PROV_Q31_3 (T1.CO_EMPR, T1.CO_PROV, T1.CO_MONE, T1.IM_SAIN, T1.IM_CXPA,             
 T1.IM_PAGO, T1.IM_CONV, T1.IM_SAIN_CONV, T1.IM_CONV_TOTA, T1.TI_DETA_EMPR,             
 T1.TI_DETA_GENE)            
 SELECT MAX(T1.CO_EMPR), (SELECT MAX(CO_PROV) FROM #TWDOCU_PROV_Q31_1), T1.CO_MONE, ISNULL(MAX(T3.IM_SAIN), 0),            
  SUM(ISNULL( T1.IM_CXPA, 0 )), SUM(ISNULL( T1.IM_PAGO, 0 )), SUM(ISNULL( T1.IM_CONV, 0 )),             
  ISNULL(MAX(T3.IM_SAIN_CONV), 0), 0, '2', '2'            
FROM  #TWDOCU_PROV_Q31_1 T1            
    LEFT OUTER JOIN (SELECT CO_MONE, SUM(ISNULL(IM_SAIN, 0)) IM_SAIN,             
        SUM(ISNULL(IM_SAIN_CONV, 0)) IM_SAIN_CONV             
     FROM #TWDOCU_PROV_Q31_2             
     GROUP BY CO_MONE) T3            
    ON  T1.CO_MONE = T3.CO_MONE            
    INNER JOIN TTMONE T2            
    ON T1.CO_MONE = T2.CO_MONE             
 GROUP BY T1.CO_MONE             
            
            
 INSERT INTO #TWDOCU_PROV_Q31_3 (T1.CO_EMPR, T1.CO_PROV, T1.CO_MONE, T1.IM_SAIN, T1.IM_CXPA,             
 T1.IM_PAGO, T1.IM_CONV, T1.IM_SAIN_CONV, T1.IM_CONV_TOTA, T1.TI_DETA_EMPR,             
 T1.TI_DETA_GENE)            
 SELECT MAX(T1.CO_EMPR), (SELECT MAX(CO_PROV) FROM #TWDOCU_PROV_Q31_1), T1.CO_MONE, ISNULL(MAX(T3.IM_SAIN), 0),            
  0, 0, 0, ISNULL(MAX(T3.IM_SAIN_CONV), 0), 0, '2', '2'            
 FROM  #TWDOCU_PROV_Q31_2 T1            
    LEFT OUTER JOIN (SELECT CO_MONE, SUM(ISNULL(IM_SAIN, 0)) IM_SAIN,             
        SUM(ISNULL(IM_SAIN_CONV, 0)) IM_SAIN_CONV             
     FROM #TWDOCU_PROV_Q31_2             
     GROUP BY CO_MONE)T3            
    ON T1.CO_MONE = T3.CO_MONE             
    INNER JOIN TTMONE T2            
    ON T1.CO_MONE = T2.CO_MONE             
 AND NOT EXISTS (SELECT  T3.CO_EMPR            
   FROM  #TWDOCU_PROV_Q31_1 T3            
   WHERE  T1.CO_MONE = T3.CO_MONE )            
 GROUP BY T1.CO_MONE            
            
            
 INSERT INTO #TWDOCU_PROV_Q31_3 (T1.CO_EMPR, T1.CO_PROV, T1.CO_MONE, T1.IM_SAIN, T1.IM_CXPA,             
 T1.IM_PAGO, T1.IM_CONV, T1.IM_SAIN_CONV, T1.IM_CONV_TOTA, T1.TI_DETA_EMPR,             
 T1.TI_DETA_GENE)            
 SELECT MAX(T1.CO_EMPR), MAX(T1.CO_PROV), '', 0, SUM(ISNULL( T1.IM_CXPA_CONV, 0 )),            
  SUM(ISNULL( T1.IM_PAGO_CONV, 0 )), 0, ISNULL((SELECT SUM(ISNULL(IM_SAIN_CONV, 0)) IM_SAIN_CONV             
 FROM #TWDOCU_PROV_Q31_2             
       GROUP BY CO_EMPR), 0), 0,             
  '3', '2'            
 FROM  #TWDOCU_PROV_Q31_1 T1            
            
 EXECUTE('            
 SELECT  T1.CO_EMPR,  T3.DE_NOMB, T1.CO_PROV, T2.NO_AUXI, T1.CO_MONE, T4.SB_MONE,             
  T4.DE_MONE, T1.IM_SAIN, T1.IM_CXPA, T1.IM_PAGO, T1.IM_CONV, T1.IM_SAIN_CONV,             
  T1.IM_CONV_TOTA, T1.TI_DETA_EMPR, T1.TI_DETA_GENE, " "            
 FROM  #TWDOCU_PROV_Q31_3 T1            
    INNER JOIN  TMAUXI_EMPR T2            
    ON T2.TI_AUXI_EMPR = "' + @ISTI_AUXI_PROV + '"            
    AND T1.CO_EMPR = T2.CO_EMPR            
 AND T1.CO_PROV = T2.CO_AUXI_EMPR            
    INNER JOIN TMEMPR T3            
    ON T1.CO_EMPR = T3.CO_EMPR                
    LEFT OUTER JOIN  TTMONE T4            
    ON T1.CO_MONE = T4.CO_MONE            
 WHERE (T1.IM_SAIN != 0            
 OR  T1.IM_SAIN_CONV != 0            
 OR  T1.IM_CXPA != 0             
 OR  T1.IM_PAGO != 0)'+ @VSDE_ORDE)            
END            
            
RETURN            
/*------------------------- FIN ------------------------------ */ 


GO
